//
//  RegistrationCellViewModel.swift
//  PorscheRegistration
//
//  Created by Jinzhu Liu on 2023/11/16.
//

import Foundation
import Combine

public protocol RegistrationCellViewModelType {
    
}

public protocol RegistrationCellViewModelOutputType {
    
}

public protocol RegistrationTitleCellViewModelOutputType: RegistrationCellViewModelOutputType {
    var title: String { get }
}

public protocol RegistrationTextFieldCellViewModelOutputType: RegistrationCellViewModelOutputType {
    var textValue: String { get }
    var textValuePublisher: AnyPublisher<String, Never> { get }
    var textFieldEnable: Bool { get }
}

public protocol RegistrationTextFieldCellViewModelInputType: RegistrationCellViewModelOutputType {
    var textValue: String { get set }
}

public typealias RegistrationTextFieldCellViewModelType = RegistrationTextFieldCellViewModelOutputType & RegistrationTextFieldCellViewModelInputType

public protocol ViewModelUpdatableCell {
    var viewModel: AnyObject? { get }
    func update(with viewModel: AnyObject?)
}
